home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Spanish Scene 1
/
SpanishScene1.iso
/
spanish pack n°1 by llfb
/
--llfb--
/
programas
/
sources1.dms
/
sources1.adf
/
SOURCES
/
Vectores
/
GumVector.ASM
< prev
next >
Wrap
Assembly Source File
|
1996-06-04
|
5KB
|
352 lines
;GUMVECTOR BY LADO OF FI-RE CREW IN 1992 !
; org $30000
; load $30000
Section Roman,code_c
; >extern 'DF0:gum.dat',datas
; >extern 'DF0:gumsin.dat',sinus
j lea workplac+$2000,a0
moveq #0,d0
move.w #$13f,d7
o1 move.w d0,(a0)+
add.w #$4e,d0
dbf d7,o1
lea $40000,a6
n1 clr.l (a6)+
cmp.l #$7fff0,a6
bcs n1
lea $dff000,a6
move.w #$7fff,$96(a6)
move.w #$7fff,$9a(a6)
move.l #copper,$84(a6)
clr.w $8a(a6)
move.w #$87d0,$96(a6)
move.w #$c010,$9a(a6)
o2 move.l 4(a6),d0
and.l #$1ff00,d0
cmp.l #0,d0
bne o2
bsr clrscr
bsr scrchan
bsr brain
bsr finom
bsr szamol
bsr elrajz
bsr fill
btst #6,$bfe001
bne o2
o3 btst #$e,2(a6)
bne o3
move.w #$7fff,$9a(a6)
move.w #$7fff,$96(a6)
clr.w $88(a6)
move.w #$87f0,$96(a6)
move.w #$e02c,$9a(a6)
clr.l d0
rts
clrscr move.l erno(pc),d0
add.l #$1a82,d0
eor.w #$8000,d0
moveq #-1,d1
o4 btst #$e,2(a6)
bne o4
move.l d1,$44(a6)
move.l d0,$54(a6)
clr.w $66(a6)
move.l #$1000000,$40(a6)
move.w #$894d,$58(a6)
rts
scrchan eor.w #$8000,erno+2
eor.w #$8000,screen
eor.w #$8000,screen+4
eor.w #$8000,screen+8
rts
brain move.l next(pc),a1
move.w (a1)+,tar
move.w (a1)+,d6
cmp.w #$f060,(a1)
bne mehet
move.l #datas+$794,next
bra o5
mehet move.l a1,next
o5 lea datas+$a70(pc),a1
lea (a1,d6.w),a1
lea workplac(pc),a0
moveq #8,d6
move.w #$fff6,d2
o6 movem.w (a1)+,d4/d5
neg.w d4
move.w d4,(a0)+
move.w d5,(a0)+
move.w d2,d3
add.w d4,d3
move.w d3,(a0)+
move.w d4,(a0)+
move.w d5,(a0)+
neg.w d4
move.w d2,d3
add.w d4,d3
move.w d3,(a0)+
move.w d4,(a0)+
move.w d5,(a0)+
move.w d2,d3
add.w d4,d3
move.w d3,(a0)+
move.w d4,(a0)+
move.w d5,(a0)+
neg.w d4
move.w d2,d3
add.w d4,d3
move.w d3,(a0)+
dbf d6,o6
rts
finom move.w #$7f,d5
move.w tar+10(pc),d0
addq.w #2,d0
and.w d5,d0
move.w d0,tar+10
move.w d0,d1
add.w #$10,d1
and.w d5,d1
move.w d1,d2
add.w #$10,d2
and.w d5,d2
move.w d2,d3
add.w #$10,d3
and.w d5,d3
lea workplac(pc),a0
lea datas+$9f0(pc),a1
moveq #8,d6
b1 move.w (a1,d0.w),d4
add.w d4,(a0)
sub.w d4,4(a0)
move.w (a1,d1.w),d4
sub.w d4,6(a0)
add.w d4,10(a0)
move.w (a1,d2.w),d4
add.w d4,12(a0)
sub.w d4,$10(a0)
move.w (a1,d3.w),d4
sub.w d4,$12(a0)
add.w d4,$16(a0)
lea $18(a0),a0
addq.w #2,d0
and.w d5,d0
addq.w #2,d1
and.w d5,d1
addq.w #2,d2
and.w d5,d2
addq.w #2,d3
and.w d5,d3
dbf d6,b1
rts
szamol lea sinus(pc),a0
move.w tar+2,d7
move.w (a0,d7.w),d3
neg.w d3
swap d3
move.w (a0,d7.w),d3
add.w #$200,d7
move.w (a0,d7.w),d4
lea tar+4(pc),a1
lea workplac(pc),a2
lea workplac+$1000,a3
move.w tar,d6
move.w #$23,d7
o9 move.w (a2),d0
move.w 4(a2),d1
muls d4,d0
swap d3
muls d3,d1
swap d3
add.l d0,d1
move.w (a2),d0
move.w 4(a2),d2
muls d3,d0
muls d4,d2
add.l d0,d2
add.l d2,d2
add.l d2,d2
swap d2
move.w 2(a2),d5
add.w d6,d5
asr.w #1,d5
swap d5
addq.l #6,a2
add.w (a1),d2
divs d2,d1
divs d2,d5
asr.w #6,d1
asr.w #6,d5
add.w 2(a1),d1
add.w 4(a1),d5
move.w d1,(a3)+
move.w d5,(a3)+
dbf d7,o9
rts
elrajz lea datas(pc),a3
lea workplac+$1000,a4
lea workplac+$2000,a5
move.w #$4e,d0
p1 btst #$e,2(a6)
bne p1
move.w d0,$60(a6)
move.w d0,$66(a6)
move.l #$ffff8000,$72(a6)
move.w #$ffff,$44(a6)
p2 move.w (a3)+,d7
blt p3
move.w (a3)+,d4
move.w (a3)+,d5
move.w (a4,d4.w),d0
move.w 2(a4,d4.w),d1
move.w (a4,d5.w),d2
move.w 2(a4,d5.w),d3
move.l erno(pc),a0
bsr draw
bra p2
p3 rts
draw cmp.w d1,d3
bge l1
exg d0,d2
exg d1,d3
l1 cmp.w #$10e,d1
bgt p3
tst.w d3
blt p3
tst.w d1
bge l2
sub.w d2,d0
moveq #0,d4
sub.w d3,d4
muls d4,d0
sub.w d3,d1
beq l3
divs d1,d0
l3 add.w d2,d0
moveq #0,d1
l2 cmp.w d0,d2
bge l4
exg d0,d2
exg d1,d3
l4 tst.w d2
blt p3
cmp.w d1,d3
bgt l5
exg d0,d2
exg d1,d3
beq p3
l5 moveq #0,d4
moveq #0,d5
move.w d1,d4
add.w d4,d4
move.w (a5,d4.w),d4
move.w d0,d5
add.l a0,d4
asr.w #3,d5
add.l d5,d4
moveq #0,d5
sub.w d1,d3
sub.w d0,d2
bpl l6
moveq #1,d5
neg.w d2
l6 move.w d3,d1
add.w d1,d1
cmp.w d2,d1
dbhi d3,l7
l7 move.w d3,d1
sub.w d2,d1
bpl l8
exg d2,d3
l8 addx.w d5,d5
add.w d2,d2
move.w d2,d1
sub.w d3,d2
addx.w d5,d5
and.w #$f,d0
ror.w #4,d0
or.w #$a4a,d0
move.w d2,d6
sub.w d3,d2
lsl.w #6,d3
addq.w #2,d3
l9 btst #$e,2(a6)
bne l9
move.b code(pc,d5.w),$43(a6)
movem.w d1/d2,$62(a6)
moveq #$1a,d1
bra ugro
code dc.w $343,$1353,$b4b,$1757
ugro btst #0,d7
beq j1
bsr blitt
j1 add.l d1,d4
btst #1,d7
beq j2
bsr blitt
j2 add.l d1,d4
btst #2,d7
beq stop
bsr blitt
stop rts
blitt btst #$e,2(a6)
bne blitt
move.w d0,$40(a6)
move.w d6,$52(a6)
move.l d4,$48(a6)
move.l d4,$54(a6)
move.w d3,$58(a6)
rts
fill move.l erno(pc),a1
add.l #$5242,a1
n2 btst #$e,2(a6)
bne n2
move.l #$9f00012,$40(a6)
move.l a1,$50(a6)
move.l a1,$54(a6)
clr.l $64(a6)
move.w #$894d,$58(a6)
rts
copper dc.w $8e,$2071,$90,$2ab1,$92,$28,$94,$88,$108,$34,$10a,$34
dc.w $180,$a98,$182,$b0b,$184,$d2d,$186,$c1c,$188,$e3e
dc.w $18a,$d2d,$18c,$f4f,$18e,$80,$2001,$fffe,$100,$3200
dc.w $e0,5,$e4,5,$e8,5,$e2
screen dc.w $50,$e6,$6a,$ea,$84,$ffdf,$fffe
dc.w $2c01,$fffe,$100,$200,$ffff,$fffe
erno dc.l $58050
next dc.l datas+$794
tar dc.w $48,$4c0,$b36,$68,$77,0
; x zoom xerno yerno
incdir "Coleccion_Sources1:Sources/Vectores/"
sinus incbin "gumsin.dat"
datas incbin "gum.dat"
workplac dc.b 0